package com.fa4j.third.user.service;

import com.fa4j.third.user.model.*;
import jakarta.validation.Valid;

import java.util.Map;

/**
 * 三方用户 OAuth2
 */
public interface ThirdUserOauth2Service {

    /**
     * 获取授权参数
     *
     * @param cmd 参数
     */
    Map<String, String> getAuthorizeParams(@Valid ThirdUserGetAuthorizeParamCmd cmd);

    /**
     * 获取访问token
     *
     * @param cmd 参数
     */
    ThirdOauth2UserToken getAccessToken(@Valid ThirdUserAccessTokenCmd cmd);

    /**
     * 刷新访问token
     *
     * @param cmd 参数
     */
    ThirdOauth2UserToken refreshToken(@Valid ThirdUserRefreshTokenCmd cmd);


    /**
     * 获取用户信息
     *
     * @param cmd 参数
     */
    ThirdOauth2UserInfo getUserInfo(@Valid ThirdUserGetCmd cmd);

}
